//1\\
//找到0-100000之间的所有水仙花数并输出
//n位数,其各位数字的n次方之和等于该数
#include<stdio.h>
#include <math.h>

int main(){
    int i=0;
    for(i=0;i<=100000;i++){
        int sum=0,n=1,temp=0;
        temp=i;//计算i的位数
        while(temp/=10){
            n++;
        }
        temp=i;//经过第一次循环，temp的值改变，需重新赋值//计算i的每一位的n次方之和
        while(temp){
            sum+=(int)pow(temp%10,n);//pow函数返回的是double类型的数据
            temp/=10;
        }
        if(i==sum){//不要忘记判断和与水仙花数是否相等，要注意题目要求
            printf("%d ",i);
        }
    }
    return 0;
}
//2\\水仙花数，3
//找到0-100000之间的所有水仙花数并输出,3位数,其各位数字的3次方之和等于该数
//#include<stdio.h>
//#include <math.h>
//
//int main(){
//    int i=0,n=3;
//    for(i=100;i<1000;i++){
//        int sum=0,temp=0;
//        temp=i;
//        while(temp){
//            sum+=(int)pow(temp%10,n);
//            temp/=10;
//        }
//        if(i==sum) {
//            printf("%d ", sum);
//        }}
//    return 0;
//}